查看原文
其他

如何将html中的表格数据保存下来

2018-01-06

作者 大邓

有时候我们想爬的数据是表格样式,(网页好丑,大家将就一下)如下图。好消息是在页面html中能找到对应的数据

但坏消息是虽然数据存在于网页内部,没有可用来获取原始数据的API。 所以,现在你必须花费精力去解析网页。 这并不难,但是浪费时间,你可以用更加事半功倍的方式去解决。 

pandas

世上都说Python大法好,pandas库提供了内置的方式可以读取html文件,并从中抽取出表数据。

pandas会在网页中寻找任何符合html表形式的数据,并将其转化WieDataFrame对象作为返回结果。

Code

pandas使用方法

import pandas as pd

#header=1 显示列名;header=0,不显示
pd.read_html(url,header)

实战代码开始

import pandas as pd url = "http://hz.house.ifeng.com/detail/2014_10_28/50087618_1.shtml"
data = pd.read_html(url,header=1)
print(data)

注意啊,这里得到的数据格式是list。

   [      序号          楼盘名称   城区  签约套数  预定套数    签约面积(㎡)  签约均价(元/㎡)    0    1.0        龙湖春江郦城   滨江    18     0    2178.61    23757.0    1    2.0        海威钱塘之星   滨江    13     0    629.55㎡    17398.0    2    3.0        大家运河之星   拱墅    12     0   1052.72㎡    10457.0    3    4.0        保利城市果岭   下沙     8     0    743.05㎡    10457.0        ..   ...           ...  ...   ...   ...        ...        ...    85  86.0        广宇锦绣桃源   拱墅     1     0     86.44㎡    12473.0    86  87.0       景瑞申花壹号院   拱墅     1     0     89.18㎡    21529.0    87  88.0        复地黄龙和山   西湖     0     1         0㎡        0.0    88  89.0         中粮方圆府   下城     0     1         0㎡        0.0    89  90.0          东方铭楼   下沙     0    16         0㎡        0.0    90   NaN         总计签约:  主城区   216    40  21755.55㎡        NaN        [91 rows x 7 columns],    2        

DataFrame对象

df.to_json()

而只要知道数据存储在DataFrame中,一切都变的简单起来。 比如我很希望数据以json记形式输出,很简单!这只是一行代码的事情。

import pandas as pd data = pd.read_html(url,header=1)
#data数据是list类型,要先转化为dataframe
df = pd.DataFrame(data)
df.to_json(orient='records')

df.to_csv()

dataframe对象,还可以将数据输出保存为csv文件

import pandas as pd data = pd.read_html(url,header=1)
df = pd.DataFrame(data)
#encoding为gbk编码,可以在ofiice excell中看中文不乱吗
df.to_csv('data.csv',encoding='gbk')

这里输出的虽然是csv文件,但是没有达到预期,不晓得是怎么回事。建议大家对数据做一下处理再保存到csv中。


数据采集

【视频教程】用python批量抓取简书用户信息

【视频讲解】Scrapy递归抓取简书用户信息

【视频讲解】在scrapy框架中如何使用selenium?

【实战视频】使用scrapy写爬虫-爬知乎live

美团商家信息采集神器

使用gevent实现高效异步请求

selenium驱动器配置详解

爬虫神器PyQuery的使用方法

pyquery爬取豆瓣读书

pyquery一些自定义的用法

【视频】猫途鹰网站评论数据抓取

简易SQLite3数据库学习

【视频教程】对视频进行基本操作

【视频】抓包小练习-B站评论数据抓取

【视频】爬取饿了么平台上的门店信息

如何抓取视频资源-以头条视频为例

当爬虫遭遇验证码,怎么办

【视频】手把手教你抓美女~

【视频】有了selenium,小白也可以自豪的说:“去TMD的抓包、cookie”

北邮人论坛爬虫实操:session代替cookies

【视频】快来get新技能--抓包+cookie,爬微博不再是梦

文本处理分析

gensim:用Word2Vec进行文本分析

RAKE:快速自动抽取关键词算法

对于中文,nltk能做哪些事情

如何对csv文件中的文本数据进行分析处理

复杂网络分析数据准备篇

文本分析之网络关系

用词云图解读“于欢案”

基于共现发现人物关系的python实现

用pyecharts制作词云图

留在网上的每个字,都在泄露你的身份

图片数据处理

OpenCV:快速入门图片人脸识别

好玩的OpenCV:图片操作的基本知识(1)

好玩的OpenCV:图像操作的基本知识(2)

OpenCV:计算图片有多色

如何对数据进行各种排序?

其他

迅雷不给力,我DIY了个下载器

【视频】初学者必看:python环境配置

开扒皮自己微信的秘密

初识装饰器函数

计算运行时间-装饰器实现

花十分钟,给爱机安装个MongoDB

chardet库:轻松识别文件的编码格式

使用Python登录QQ邮箱发送QQ邮件

WTF Python: 开启你的懵逼模式

8行代码实现微信聊天机器人

使用Python+OpenCV进行面部合成

优雅简洁的列表推导式

【资源帖】简单易懂的机器学习视频教程

为什么你要为2019,而不是2018做计划?


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存